package StructuralPattern.Bridge.MultiInheritance;

/**
 * @Classname : Paypal
 * @Description : 在线支付
 * @Author : chentianyu
 * @Date 2023/2/17 21:22
 */

/**
 * 在线支付
 */
public interface Paypal {

    void pay();
}


/**
 * 支付应用
 */

// 在线支付-支付宝支付
class AliPay implements Paypal {
    @Override
    public void pay() {
        System.out.println("支付宝付款 100 元");
    }
}

// 在线支付-微信支付
class WeChatPay implements Paypal {
    @Override
    public void pay() {
        System.out.println("微信付款 100 元");
    }
}

// 在线支付-云闪付支付
class UnionPay implements Paypal {
    @Override
    public void pay() {
        System.out.println("云闪付付款 100 元");
    }
}


/**
 * 支付应用 + 验证方式
 */

// 在线支付-支付宝支付-人脸验证
class FaceAliPay extends AliPay {
    public void pay() {
        System.out.println("人脸验证中。。。");
        super.pay();
    }
}

// 在线支付-支付宝支付-指纹验证
class FingerprintAliPay extends AliPay {
    public void pay() {
        System.out.println("指纹验证中。。。");
        super.pay();
    }
}

// 在线支付-支付宝支付-密码验证
class PasswordAliPay extends AliPay {
    public void pay() {
        System.out.println("密码验证中。。。");
        super.pay();
    }
}


// 在线支付-微信支付-人脸验证
class FaceWeChatPay extends WeChatPay {
    public void pay() {
        System.out.println("人脸验证中。。。");
        super.pay();
    }
}

// 在线支付-微信支付-指纹验证
class FingerprintWeChatPay extends WeChatPay {
    public void pay() {
        System.out.println("指纹验证中。。。");
        super.pay();
    }
}

// 在线支付-微信支付-密码验证
class PasswordWeChatPay extends WeChatPay {
    public void pay() {
        System.out.println("密码验证中。。。");
        super.pay();
    }
}


// 在线支付-云闪付支付-人脸验证
class FaceUnionPay extends UnionPay {
    public void pay() {
        System.out.println("人脸验证中。。。");
        super.pay();
    }
}

// 在线支付-云闪付支付-指纹验证
class FingerprintUnionPay extends UnionPay {
    public void pay() {
        System.out.println("指纹验证中。。。");
        super.pay();
    }
}

// 在线支付-云闪付支付-密码验证
class PasswordUnionPay extends UnionPay {
    public void pay() {
        System.out.println("密码验证中。。。");
        super.pay();
    }
}